package com.miracle.system.mapper;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

import com.miracle.system.domain.SysUser;
import org.apache.ibatis.annotations.SelectProvider;

/**
 * 用户表 数据层
 *
 * @author miracle
 */
public interface SysUserMapper
{
    /**
     * 通过用户名查询用户
     *
     * @param userName 用户名
     * @return 用户对象信息
     */
    public SysUser selectUserByUserName(String userName);

    /**
     * 通过条件查询用户
     *
     * @param user 用户实体
     * @return 用户对象信息
     */
    public List<SysUser> selectUserList(SysUser user);

    /**
     * 通过用户ID查询用户
     *
     * @param userId 用户ID
     * @return 用户对象信息
     */
    public SysUser selectUserByUserId(Integer userId);

    /**
     * 插入用户
     *
     * @param user 用户实体
     * @return 整型
     */
    public Integer insertUser(SysUser user);

    /**
     * 更新用户
     *
     * @param user 用户实体
     * @return 整型
     */
    public Integer updateUser(SysUser user);

    /**
     * 批量删除用户
     *
     * @param userIds 用户ID
     * @return 整型
     */
    public Integer deleteUserByUserIds(Integer[] userIds);

    /**
     * 重置用户密码
     *
     * @param map
     * @return 整型
     */
    public Integer resetPassword(Map<String, Object> map);

    /**
     * 远程校验
     *
     * @param user 用户实体
     * @return 用户对象信息
     */
    public SysUser remoteCheckUser(SysUser user);
}
